package com.example.servlet;

import com.example.util.HttpUtil;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
import java.util.Date;

@WebServlet(name = "demo05", value = "/demo05")
public class ServletDemo05 extends HttpServlet {
    protected void doGet(HttpServletRequest req,
                         HttpServletResponse resp)
            throws ServletException, IOException {
        // 之前请求过，就已存在了Session
        // 如果之前没有请求过，创建新的Session
        HttpSession session = req.getSession();
        // EA49A7E1686539BC7872DAF590F25530
        // 用户对JavaWeb的服务端（任何一个Servlet或JSP）发起请求
        // 服务端就会创建会话，把会话ID加到Cookie当中返回给客户端
        // Cookie数据的名称是"JSESSIONID"
        System.out.println(session.getId());
        // 在服务端会话中存储自定义数据，不会返回给前端
        // 在会话中存数据
        int count = 0;
        if (session.getAttribute("count") != null) {
            // 之前的请求的会话当中存了count这个数据
            Object obj = session.getAttribute("count");
            count = Integer.parseInt(obj.toString());
            session.setAttribute("count", count + 1);
            // 取出之后可以返回到页面当中去
            HttpUtil.writeHtml(resp, "<p>对/demo05请求了:" + count + "次</p>");
        } else {
            // 第一次请求，还没有存入数据
            session.setAttribute("count", ++count);
            HttpUtil.writeHtml(resp, "<p>第一次请求</p>");
        }
    }
}
